package config

import (
	"encoding/json"
	"os"
)

// 数据库配置
type DataSection struct {
	Type  string `json:"type"`  //数据库类型
	Path  string `json:"path"`  //数据库文件路径
	Table string `json:"table"` //数据库表
}

// 服务器配置
type ServerSection struct {
	Port int    `json:"port"`
	Ip   string `json:"ip"`
}

// 总配置信息
type Config struct {
	Name     string        `json:"name"`
	Version  string        `json:"version"`
	Database DataSection   `json:"database"`
	Server   ServerSection `json:"server"`
}

// 将json格式的配置文件加载到Config结构体中
func Load(path string) (*Config, error) {
	b, err := os.ReadFile(path)
	if err != nil {
		return nil, err
	}
	var c Config
	if err := json.Unmarshal(b, &c); err != nil {
		return nil, err
	}
	return &c, nil
}
